library(plotly)
## Warning: package 'plotly' was built under R version 4.0.5
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.0.5
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.5
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(stringr)
## Warning: package 'stringr' was built under R version 4.0.5
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.0.5
df <- read.csv("complete.csv")
df$gender <- str_to_title(df$gender)
df$gender <- factor(df$gender, levels = c('Male', 'Female'))
df_fm <- df %>%
drop_na(gender) %>%
group_by(gender,category) %>%
summarize(n = n())
## `summarise()` has grouped output by 'gender'. You can override using the `.groups` argument.
#stworzenie odpowiednich datasetow ktore wczytuje wybierajac odpowiednie pole
#na wykresie (female, male)
df_f <- df_fm %>% filter(gender == "Female")
df_m <- df_fm %>% filter(gender == "Male")
df_together <- df %>%
drop_na(gender) %>%
group_by(category) %>%
summarize(n = n())
steps <- list(
list(args = list(list("marker.color" = list("#756bb1")
)),
label = "Purple Bars",
method = "restyle"
),
list(args = list(list("marker.color" = list("#dd1c77")
)),
label = "Pink Bars",
method = "restyle"
),
list(args = list(list("marker.color" = list("#d95f0e")
)),
label = "Orange Bars",
method = "restyle"
)
)
plot_ly(
data = df_f,
x = ~n,
y = ~category,
marker = list(color = "#756bb1")
) %>% layout(
title = "Gender wise no. of winners",
updatemenus = list( #lista obiektow
list(#obiekt
x = 1, y = 1,
buttons = list(#lista obiektow
list(method = "update",
args = list(list(x = list(df_f$n),y = list(df_f$category))),
label = "Female"),#obiekt/wartosc
list(method = "update",
args = list(list(x = list(df_m$n),y = list(df_m$category))),
label = "Male"),
list(method = "update",
args = list(list(x = list(df_together$n),y = list(df_together$category))),
label = "Together")
))
)) %>%
layout(xaxis = list(fixedrange = TRUE), yaxis = list(fixedrange = TRUE)) %>%
config(displayModeBar = FALSE) %>%
layout( plot_bgcolor='#e5ecf6',
xaxis = list(
title = "number of winners",
zerolinecolor = '#ffff',
zerolinewidth = 2,
gridcolor = 'ffff'),
yaxis = list(
title = "",
zerolinecolor = '#ffff',
zerolinewidth = 2,
gridcolor = 'ffff'),
sliders = list(
list(
active = 0,
currentvalue = list(prefix = "Palette: "),
pad = list(t = 60),
steps = steps
)
))
## No trace type specified:
## Based on info supplied, a 'bar' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#bar